package com.ruoyi.project.pro.classes.service.impl;

import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.security.ShiroUtils;
import com.ruoyi.project.pro.classes.domain.ProClasses;
import com.ruoyi.project.pro.classes.mapper.ClassesMapper;
import com.ruoyi.project.pro.classes.service.IClassesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @program: zhizun
 * @author: Mrs.ye
 * @create: 2020-09-17 14:21
 * @description:
 **/
@Service
public class ClassesServiceImpl implements IClassesService {

    @Autowired
    private ClassesMapper classesMapper;
    /**
     * 分页查询产品风格
     * @return
     */
    @Override
    public List<ProClasses> selectClasses(ProClasses proClasses) {
        return classesMapper.selectClassesList(proClasses);
    }


    /**
     * 校验岗位名称是否唯一
     *
     * @param proClasses 产品风格信息
     * @return 结果
     * 根据公告的名字到数据库中查询公告
     * 将数据库中公告的id传进来的公告id进行对比
     */
    @Override
    public String checkClassesNameUnique(ProClasses proClasses) {
        Long classesId = StringUtils.isNull(proClasses.getClassesId()) ? -1L : proClasses.getClassesId();
        ProClasses info = classesMapper.checkClassesNameUnique(proClasses.getClassesName());
        //如果根据公告名称查询出来了公告,并且查询出来的公告id和原本的id不同,表示同一个公告名称有不同的id,
        //反过来就是说不同的id相同的公告名称,这样公告名称就不唯一了
        if (StringUtils.isNotNull(info) && info.getClassesId().longValue() != classesId.longValue())
        {
            return UserConstants.TYPE_CODE_NOT_UNIQUE;
        }
        return UserConstants.TYPE_CODE_UNIQUE;
    }

    /**
     * 新增产品风格
     * @param proClasses
     * @return
     */
    @Override
    public int insertProClasses(ProClasses proClasses) {
        proClasses.setCreateBy(ShiroUtils.getLoginName());
        return classesMapper.insertProClasses(proClasses);
    }

    /**
     * 通过id查询产品风格
     * @param classesId
     * @return
     */
    @Override
    public ProClasses selectClassesById(Long classesId) {
        ProClasses proClasses = classesMapper.selectClassesById(classesId);
        System.out.println(proClasses);

        return proClasses;
    }

    /**
     * 修改产品风格
     * @param proClasses
     * @return
     */

    @Override
    public int updateClasses(ProClasses proClasses) {
        proClasses.setUpdateBy(ShiroUtils.getLoginName());
        return classesMapper.updateClasses(proClasses);
    }

    @Override
    public int removeProClassesById(Long[] ids) {

        return classesMapper.removeProClassesById(ids);
    }
}
